中文直譯為資料流,
React 中文圈通常說法是
單向資料流/單一資料流,
如字面所述,表示 React 中
所有資料數據只能單向傳遞的機制。
state 在 react 中的角色是保存資料
在資料處理中與 props 各分其職。
依照以上的邏輯,
被傳到某個元件內的 props 如果要更改內容,
應該將其轉換成 state,
變成單獨屬於該元件的 state 後,
按照「單向資料流」的規則來更改 state。
而如果將自己的 state 傳給子元件,
則該 state 會成為子元件的 props。
唯一可以指定 this.state 值的地方,僅有 class component 的 constructor
// 錯誤
this.setState({
counter: this.state.counter + this.props.increment,
});
// 正確
this.setState((state, props) => ({
counter: state.counter + props.increment
}));